Skip to content

Conversation

@mike-spa
Copy link
Contributor

Hammer-on and pull-off implementation

Copy link

@bkunda bkunda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's very lovely! So much about this is delightful to use.

My few bits of feedback at this stage are:

1. Default text size

It'd probably be nice to use 8pt instead of 10pt for the "H"/"P" default size. 10 is just a bit too large IMO.

2. Styles dialog page freeze issues

See video. We've definitely encountered this before, and I suspect it's a product of mixing QML components in the old dialog. Lmk if there's anything we can actually do about this.

3. Select next element in score

See video. Currently this command moves selection to the end of the score (it obviously shouldn't do this).

4. Upper/Lower-case buttons in Styles

We do actually have musescoreicon icons for the upper-case/lower-case buttons. It would be nicer to use these. Also these buttons should have tooltips please (see spec).

@mike-spa mike-spa force-pushed the hopo branch 3 times, most recently from 6d1aab2 to 1ce757c Compare May 28, 2025 08:15
@ghost ghost requested a review from miiizen May 28, 2025 09:59
Copy link
Contributor

@miiizen miiizen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've only spotted a few small things so far!


xml.startElement(item);
if (ctx.clipboardmode()) {
xml.tag("stemArr", Slur::calcStemArrangement(item->startElement(), item->endElement()));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be removed now we've merged #28152

{ ElementType::SYSTEM, "System", muse::TranslatableString("engraving", "System") },
{ ElementType::CHORD, "Chord", muse::TranslatableString("engraving", "Chord") },
{ ElementType::SLUR, "Slur", muse::TranslatableString("engraving", "Slur") },
{ ElementType::HAMMER_ON_PULL_OFF, "HammerOnPullOff", muse::TranslatableString("engraving", "Hammer-on pull-off") },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is duplicated below

// be triggered by the decimal digit immediately following a non-ASCII character (curly quote).
oneMeasureRepeatShow1->setText(muse::qtrc("EditStyleBase", "Show ‘1’ on 1-measure repeats"));
singleMMRestShowNumber->setText(muse::qtrc("EditStyleBase", "Show number ‘1’"));
oneMeasureRepeatShow1->setText(muse::qtrc("EditStyleBase", "Show ‘1’ on 1-measure repeats"));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some garble from uncrustify

case ElementType::PARTIAL_TIE:
case ElementType::PARTIAL_TIE_SEGMENT:
case ElementType::HAMMER_ON_PULL_OFF:
case ElementType::HAMMER_ON_PULL_OFF_SEGMENT:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the Github warning below - you're missing a case for TextStyleType::HAMMER_ON_PULL_OFF (1722)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah right! (it's also pointing to the wrong page, given that Hopo do have their own page style)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The compiler warnings mentioned here have not been fixed either, despite the comment, so that makes me think there's just a push missing

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I just forgot about that. See #28226

static const std::vector<PlayTechAnnotationInfo> playTechAnnotationsMaster = {
{ QT_TRANSLATE_NOOP("palette", "détaché"), PlayingTechniqueType::Detache },
{ QT_TRANSLATE_NOOP("palette", "martelé"), PlayingTechniqueType::Martele },
{ QT_TRANSLATE_NOOP("palette", "détaché"), PlayingTechniqueType::Detache },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More uncrustify rubbish

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this had not been fixed before the PR was merged. I'll fix it now, but it might be good to double-check that that doesn't mean that any other fixes had not been pushed either.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably did fix it and then Uncrustify messed it up again as it runs on every save. Do we know if that's an Uncrustify or a Qt Creator bug? I may need to just disable Uncrustify altogether, it's way to easy to accidentally push garbage

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we know if that's an Uncrustify or a Qt Creator bug?

I don't know. Perhaps one way to find out, is to run Uncrustify from the command line. If it still happens, you could look if there are some Uncrustify options to force Uncrustify to read the file as UTF-8, because maybe that's where it goes wrong.

} else {
// The last endChord of this segment is in next system. Use end barline instead.
Measure* lastMeas = system->lastMeasure();
for (Segment* seg = lastMeas->last(); seg; seg = seg->prev()) {
Copy link
Contributor

@miiizen miiizen May 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe something like this is more concise

Suggested change
for (Segment* seg = lastMeas->last(); seg; seg = seg->prev()) {
Segment* seg = lastMeas->last(SegmentType::BarLineType);
endX = seg ? seg->systemPos().x() : endX;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ha, yes thanks, I forgot we had that!

@ghost ghost added this to MuseScore Studio 4.6 May 29, 2025
@ghost ghost moved this to In Progress in MuseScore Studio 4.6 May 29, 2025
Copy link
Contributor

@miiizen miiizen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent stuff!

@miiizen miiizen merged commit 6b8eac6 into musescore:master May 30, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in MuseScore Studio 4.6 May 30, 2025
cbjeukendrup added a commit to cbjeukendrup/MuseScore that referenced this pull request Jun 1, 2025
mikekirin pushed a commit to mikekirin/MuseScore that referenced this pull request Jun 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants